home *** CD-ROM | disk | FTP | other *** search
- From: Damian Conway <damian@cs.monash.edu.au>
- Message-ID: <199604172311.JAA22065@indy05.cs.monash.edu.au>
- X-Original-Date: Thu, 18 Apr 1996 09:11:56 +1000 (EST)
- Path: in2.uu.net!bounce-back
- Date: 18 Apr 96 01:53:17 GMT
- Approved: fjh@cs.mu.oz.au
- Organization: -
- Newsgroups: comp.std.c++
- Subject: Quick question about const ref return types
- X-Auth: PGPMoose V1.1 PGP comp.std.c++
- iQBFAgUBMXWgteEDnX0m9pzZAQEcWQF5AUF8JQaDIiRVy4lDLpnB36dpMXTSyJg8
- wZPHCgLNvDNZXmY9bn83HFoFn3APubYu
- =qVnt
-
- Is the following legal?
-
- const int& positive(const int& value)
- {
- if (value<0)
- {
- return 0;
- }
- else
- {
- return value;
- }
- }
-
- If so, I presume it's also valid in the general case:
-
- const ClassType& func(const ClassType& value);
-
- and that the return of a literal generates a temporary which is bound to
- the reference returned and persists until the completion of the full
- expression enclosing the function call (or the destruction of a reference
- variable to which the returned reference is subsequently bound).
-
- I've searched through the April 95 WP for a definitive answer.
- 8.5.3. [dcl.init.ref] seems to imply this usage is valid (by
- analogy to the binding of temporaries to const reference parameters).
-
- damian
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- who: Damian Conway email: damian@bruce.cs.monash.edu.au
- where: Dept. Computer Science phone: +61-3-565-5184
- Monash University fax: +61-3-565-5146
- Clayton 3168 quote: "A pessimist is never disappointed."
- AUSTRALIA
- ---
- [ comp.std.c++ is moderated. To submit articles: try just posting with ]
- [ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
- [ FAQ: http://reality.sgi.com/employees/austern_mti/std-c++/faq.html ]
- [ Policy: http://reality.sgi.com/employees/austern_mti/std-c++/policy.html ]
- [ Comments? mailto:std-c++-request@ncar.ucar.edu ]
-